#
# Resolvendo o problema dos baldes por A*
#
# A concluso dos testes  que este caminhamento gera solues to concisas,
# mas com buscas mais rpidas do que o Branch & Bound; e com uma resposta muito
# mais rpida (menos de 2 segundos) para o caso especial em que o destino no
# existe.
#

# 1o. teste
> (setq r (cria_baldes 0 0))
> (setf d (cria_baldes 2 0))
> (busca r d)
("Enche 5l" "Passa de 5l para 3l" "Esvazia 3l" "Passa de 5l para 3l")

# 2o. teste
> (setq r (cria_baldes 0 0))
> (setf d (cria_baldes 0 1))
> (busca r d)
("Enche 3l" "Passa de 3l para 5l" "Enche 3l" "Passa de 3l para 5l" "Esvazia 5l" "Passa de 3l para 5l")

# 3o. teste
> (setf r (cria_baldes 0 0))
> (setf d (cria_baldes 2 1))
> (busca r d)
("Impossivel encontrar caminho para o no'")

# 4o. teste
# O resultado faz sentido: no  precisa nenhuma operao para transformar um
# estado nele mesmo!
> (setf r (cria_baldes 0 0))
> (busca r r)
NIL

